Generally, a visualization is a way or a type of rendering to present data to a user. For example, a visualization may be a bar graph, a chart, a scatter plot, etc. When data from a data set is visualized or presented, such as by a visualization system, visualizations are often tightly coupled with the data set that is being presented. This means that a data set may be presented using merely one type of visualization. For example, when a data set is two-dimensional or 2-D, the data set may include one or more columns of data entries and one or more rows of data entries. The columns of the data set may represent features or fields, while the rows of the data set may correspond to records of those features or fields. However, as a data set is updated, such as when the number of rows or the number of columns changes, the generated visualization may no longer remain effective. That is, program code or source code for generating a visualization may follow assumptions related to a structure of the data set or a format of the data set. As a result, a visualization generated from this source code may be tightly coupled with the data set. In this way, data sets are often presented in a limited manner, such as by making certain assumptions about the structure of data, for example.
Data sets tend to be dynamic by nature because an incoming data set or a received data set can take many forms. As an example, a scatter plot is a type of visualization which can be used to represent data from a data set as one or more points in two-dimensional (2-D) space or three-dimensional (3-D) space. Scatter plot visualizations are capable of handling multi-dimensional data, but rely on data sets to be hierarchically arranged or hierarchically compared (e.g. one number being smaller than, equal to, or greater than another number). When a field of a data set is not hierarchically arrange-able or hierarchically comparable, scatter plot visualizations may not be as useful. In other words, if a new field (which is not hierarchically comparable) is added to a data set, the new field may ‘break’ an associated visualization. In other scenarios, the added field may be omitted or ignored by the visualization, thereby adding little or no value to the visualization. Similarly, if a previously available field is no longer available, the existing visualization may not function properly.
In some scenarios, a basic property of a field of a data set may change when new information or data is received, thereby changing properties of a data set. For example, data of a data set related to a graph of a social network (e.g., where the nodes of the graph represent entities or individuals and the edges of the graph represent connections or relationships between entities) may often change on the fly or on an ongoing basis. That is, new information about existing connection can become available, like someone owing money to another connected person, or one person being a mentor of another person, for example. In other scenarios, it may not be known what type of data will be received, such as a number of columns or fields, a number of rows or records, properties of the data set, etc.
The dynamic nature of data sets can be addressed by implementing a search. For example, if a visualization requires a field or field type, corresponding fields may be searched within the data set. This means that the visualization can be agnostic of the location of that particular field within the data set. In other words, the visualization can be independent of the location of a field in the data set. Additionally, a format of a data set may be changed (e.g., such as from an integer data type to a decimal data type) without necessarily compromising the meaning of the data set. Although some degree of flexibility can be achieved, these attempts merely adjust data sets to conform to requirements which are hard coded into the source code for generating visualizations.